package top.zlhy7.base;

import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import top.zlhy7.base.constant.Constants;

import java.util.Date;

/**
 * @author renyong
 * @date 2024/9/29 18:35
 * @description 公共类
 */
@Data
public class BaseEntity {
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 创建人
     */
    private Long createBy;
    /**
     * 修改时间
     */
    private Date updateTime;
    /**
     * 修改人
     */
    private Long updateBy;
    /**
     * 删除状态 0:未删除 1:已删除
     */
    @TableLogic
    private Integer delFlag;
    /**
     * 备注
     */
    @Length(max = 500,message = "备注长度不能超过{max}个字符")
    private String remark;

    /**
     * 新增之前
     */
    public void insertBefore(){
        this.createTime = new Date();
        this.updateTime = this.createTime;
        this.delFlag = Constants.NO;
    }
    /**
     * 新增之前
     */
    public void insertBefore(Date createTime){
        this.createTime = createTime;
        this.updateTime = createTime;
        this.delFlag = Constants.NO;
    }
    /**
     * 更新之前
     */
    public void updateBefore(){
        this.updateTime = new Date();
    }
    /**
     * 更新之前
     */
    public void updateBefore(Date updateTime){
        this.updateTime = updateTime;
    }
}
